The benefits of collecting medical information from a person over a long time period and during everyday life have long been prophesized. In recent years, many research groups have been investigating body sensor networks (BSNs). These are networks of multiple sensors or sensing devices or sensing nodes, deployed around, and even in, the body and transmitting their data over a digital radio link. Thus, each sensor should be as discrete and small as possible.
A number of protocols are currently known which purport to be protocols for ‘low-power’ networks and might therefore be suitable for BSNs. Examples of such protocols are described in “Part 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (LR-WPANs)”, IEEE Std 802.15.4-2006, and Wei Ye et al. “S-MAC: An Energy-Efficient MAC Protocol for Wireless Sensor Networks”. A BSN, by its very nature, is a mobile network and can be worn on or implanted in the body, for example. Additionally, an access device or ‘collating’ device may be provided, which collects data from the sensor nodes and which may also be worn on the body.
Power consumption is an important issue in most wireless sensor network applications. For instance, in personal health monitoring, the wearable and implanted sensor nodes are equipped with very small batteries and are required to be functional for a long duration. Although the application characters might differ in the way the sensor nodes are operated, a common requirement is an energy-efficient mode of operation. Since the sensor node architecture has a big impact on the power consumption, proper choice needs to be made to satisfy the stringent requirements. Another requirement is reliability. If the nodes are used in biomedical monitoring they need to operate reliably, even with unpredictable hardware behavior.
Recently a number of wireless sensor nodes are made available on the market to cater for the growing needs of the emerging applications. Aside from innovations regarding the components (e.g., processors, radio, analog-to-digital converter (A/D)), most wireless sensor nodes are composed in a traditional way in which a control processing unit (CPU) or direct memory access (DMA) device takes care of data transfer to and from the peripherals. As an example, B. Calhoun, et al, “Design Considerations for Ultra-low Energy Wireless Microsensor nodes”, IEEE Trans. on Computers, Vol. 54, No. 6, June 2005 describes a DMA based sensor node built from modules with independent voltage and frequency islands to improve the overall energy efficiency. An event which is generated when a buffer is full is used to trigger operation of the associated module. Although the use of DMA is more energy efficient than a CPU in moving data, there are a number of drawbacks associated with both approaches.
First, lack of predictability arises from the fact that the CPU and the DMA device are shared devices that operate on an interrupt basis which makes them intrinsically non-predictable in the sense that service requests could be missed. Such lack of predictability could even lead to non-real time response to critical events which for real-time alert applications is not acceptable. In the proposed invention, any unpredictability in data transfer is removed, making the whole system more robust.
Second, a transfer overhead is generated from the point of view of data transport between components, a CPU or DMA device with its accompanying operation protocol introduces an overhead that essentially reduces energy efficiency.
Third, lack of hardware scalability arises from the fact that the DMA device is a central shared resource which is not easily scalable when a sensor node needs to change operational mode with distinctly different performance requirements and/or handles multiple data streams originating from multiple sensor units, primarily due to the limited number of DMA channels.
Fourth, programming complexity results from the fact that from application programmer point of view, (re-)configuring the DMA device and/or peripherals is not a simple task and could lead to non-optimal operation modes. Moreover, switching-off components when temporarily not needed can be extremely favorable for energy efficiency. Unfortunately, this often requires a significant programming effort (and, therefore, is sometimes even just completely ignored) as waking-up components is non-trivial due to the intrinsic wake-up times (related to e.g. power-up and/or stabilization) that somehow need to be accounted for in the application program.